home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / p_man / cat3 / Xm / XmDragContext.z / XmDragContext
Text File  |  1998-10-30  |  93KB  |  1,387 lines

  1.  
  2.  
  3.  
  4.      XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))
  5.  
  6.  
  7.  
  8.      NNNNAAAAMMMMEEEE
  9.           XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt - The DragContext widget class
  10.  
  11.      SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.           #include <Xm/DragDrop.h>
  13.  
  14.      VVVVEEEERRRRSSSSIIIIOOOONNNN
  15.           This page documents Motif 2.1.
  16.  
  17.      DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  18.           DragContexts are special widgets used in drag and drop
  19.           transactions.  A DragContext is implemented as a widget, but
  20.           a client does not explicitly create a DragContext widget.
  21.           Instead, a client initiates a drag and drop transaction by
  22.           calling XXXXmmmmDDDDrrrraaaaggggSSSSttttaaaarrrrtttt, and this routine initializes and
  23.           returns a DragContext widget. There is a unique DragContext
  24.           for each drag operation. The toolkit frees a DragContext
  25.           when a transaction is complete; therefore, an application
  26.           programmer should not explicitly destroy a DragContext.
  27.  
  28.           Initiator and receiver clients both use DragContexts to
  29.           track the state of a transaction. When the initiator and
  30.           receiver of a transaction are in the same client, they share
  31.           the same DragContext instance. If they are in different
  32.           clients, there are two separate DragContexts. In this case,
  33.           the initiator calls XXXXmmmmDDDDrrrraaaaggggSSSSttttaaaarrrrtttt and the toolkit provides a
  34.           DragContext for the receiver client. The only resources
  35.           pertinent to the receiver are XXXXmmmmNNNNeeeexxxxppppoooorrrrttttTTTTaaaarrrrggggeeeettttssss and
  36.           XXXXmmmmNNNNnnnnuuuummmmEEEExxxxppppoooorrrrttttTTTTaaaarrrrggggeeeettttssss. These can both be passed as arguments
  37.           to the XXXXmmmmDDDDrrrrooooppppSSSSiiiitttteeeeRRRReeeettttrrrriiiieeeevvvveeeefunction to obtain information
  38.           about the current drop site.
  39.  
  40.           In general, in order to receive data, a drop site must share
  41.           at least one target type and operation in common with a drag
  42.           source. The DragContext resource, XXXXmmmmNNNNeeeexxxxppppoooorrrrttttTTTTaaaarrrrggggeeeettttssss,
  43.           identifies the selection targets for the drag source. These
  44.           export targets are compared with the XXXXmmmmNNNNiiiimmmmppppoooorrrrttttTTTTaaaarrrrggggeeeettttssss
  45.           resource list specified by a drop site.  The DragContext
  46.           resource, XXXXmmmmNNNNddddrrrraaaaggggOOOOppppeeeerrrraaaattttiiiioooonnnnssss, identifies the valid operations
  47.           that can be applied to the source data by the initiator. The
  48.           drop site counterpart resource is XXXXmmmmNNNNddddrrrrooooppppSSSSiiiitttteeeeOOOOppppeeeerrrraaaattttiiiioooonnnnssss,
  49.           which indicates a drop site's supported operations.
  50.  
  51.           A client uses DragIcon widgets to define the drag-over
  52.           animation effects associated with a given drag and drop
  53.           transaction.  An initiator specifies a set of drag icons,
  54.           selects a blending model, and sets foreground and background
  55.           cursor colors with DragContext resources.
  56.  
  57.           The type of drag-over visual used to represent a drag
  58.           operation depends on the drag protocol style. In preregister
  59.           mode, the server is grabbed, and either a cursor or a pixmap
  60.  
  61.  
  62.  
  63.      Page 1                                         (printed 10/24/98)
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.      XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))
  71.  
  72.  
  73.  
  74.           may be used as a drag-over visual. In dynamic mode, drag-
  75.           over visuals must be implemented with the X cursor. If the
  76.           resulting drag protocol style is Drop Only or None and the
  77.           XXXXmmmmNNNNddddrrrraaaaggggIIIInnnniiiittttiiiiaaaattttoooorrrrPPPPrrrroooottttooooccccoooollllSSSSttttyyyylllleeee is XXXXmmmmDDDDRRRRAAAAGGGG____DDDDYYYYNNNNAAAAMMMMIIIICCCC or
  78.           XXXXmmmmDDDDRRRRAAAAGGGG____PPPPRRRREEEEFFFFEEEERRRR____DDDDYYYYNNNNAAAAMMMMIIIICCCC, then a dynamic visual style (cursor)
  79.           is used. Otherwise, a preregister visual style is used.
  80.  
  81.         CCCCllllaaaasssssssseeeessss
  82.           DragContext inherits behavior and resources from CCCCoooorrrreeee.
  83.  
  84.           The class pointer is _x_m_D_r_a_g_C_o_n_t_e_x_t_C_l_a_s_s.
  85.  
  86.           The class name is XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt.
  87.  
  88.         NNNNeeeewwww RRRReeeessssoooouuuurrrrcccceeeessss
  89.           The following table defines a set of widget resources used
  90.           by the programmer to specify data. The programmer can also
  91.           set the resource values for the inherited classes to set
  92.           attributes for this widget. To reference a resource by name
  93.           or by class in a ....XXXXddddeeeeffffaaaauuuullllttttssss file, remove the XXXXmmmmNNNN or XXXXmmmmCCCC
  94.           prefix and use the remaining letters. To specify one of the
  95.           defined values for a resource in a ....XXXXddddeeeeffffaaaauuuullllttttssss file, remove
  96.           the XXXXmmmm prefix and use the remaining letters (in either
  97.           lowercase or uppercase, but include any underscores between
  98.           words). The codes in the access column indicate if the given
  99.           resource can be set at creation time (C), set by using
  100.           XtSetValues (S), retrieved by using XtGetValues (G), or is
  101.           not applicable (N/A).
  102.  
  103.                                                         XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt RRRReeeessssoooouuuurrrrcccceeee SSSSeeeetttt
  104.           NNNNaaaammmmeeee                          CCCCllllaaaassssssss                    TTTTyyyyppppeeee                         DDDDeeeeffffaaaauuuulllltttt                     AAAAcccccccceeeessssssss
  105.           XmNblendModel                 XmCBlendModel            unsigned char                XmBLEND_ALL                 CG
  106.           XmNclientData                 XmCClientData            XtPointer                    NULL                        CSG
  107.           XmNconvertProc                XmCConvertProc           XtConvertSelectionIncrProc   NULL                        CSG
  108.           XmNcursorBackground           XmCCursorBackground      Pixel                        dynamic                     CSG
  109.           XmNcursorForeground           XmCCursorForeground      Pixel                        dynamic                     CSG
  110.           XmNdragDropFinishCallback     XmCCallback              XtCallbackList               NULL                        CSG
  111.           XmNdragMotionCallback         XmCCallback              XtCallbackList               NULL                        C
  112.           XmNdragOperations             XmCDragOperations        unsigned char                XmDROP_COPY | XmDROP_MOVE   C
  113.           XmNdropFinishCallback         XmCCallback              XtCallbackList               NULL                        C
  114.           XmNdropSiteEnterCallback      XmCCallback              XtCallbackList               NULL                        C
  115.           XmNdropSiteLeaveCallback      XmCCallback              XtCallbackList               NULL                        C
  116.           XmNdropStartCallback          XmCCallback              XtCallbackList               NULL                        C
  117.           XmNexportTargets              XmCExportTargets         Atom *                       NULL                        CSG
  118.           XmNincremental                XmCIncremental           Boolean                      False                       CSG
  119.           XmNinvalidCursorForeground    XmCCursorForeground      Pixel                        dynamic                     CSG
  120.           XmNnoneCursorForeground       XmCCursorForeground      Pixel                        dynamic                     CSG
  121.           XmNnumExportTargets           XmCNumExportTargets      Cardinal                     0                           CSG
  122.           XmNoperationChangedCallback   XmCCallback              XtCallbackList               NULL                        C
  123.           XmNoperationCursorIcon        XmCOperationCursorIcon   Widget                       dynamic                     CSG
  124.  
  125.  
  126.  
  127.  
  128.  
  129.      Page 2                                         (printed 10/24/98)
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.      XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))
  137.  
  138.  
  139.  
  140.           XmNsourceCursorIcon           XmCSourceCursorIcon      Widget                       dynamic                     CSG
  141.           XmNsourcePixmapIcon           XmCSourcePixmapIcon      Widget                       dynamic                     CSG
  142.           XmNstateCursorIcon            XmCStateCursorIcon       Widget                       dynamic                     CSG
  143.           XmNtopLevelEnterCallback      XmCCallback              XtCallbackList               NULL                        C
  144.           XmNtopLevelLeaveCallback      XmCCallback              XtCallbackList               NULL                        C
  145.           XmNvalidCursorForeground      XmCCursorForeground      Pixel                        dynamic                     CSG
  146.  
  147.           XXXXmmmmNNNNbbbblllleeeennnnddddMMMMooooddddeeeellll
  148.                     Specifies which combination of DragIcons are
  149.                     blended to produce a drag-over visual.
  150.  
  151.                     XXXXmmmmBBBBLLLLEEEENNNNDDDD____AAAALLLLLLLL
  152.                               Blends all three DragIcons: the source,
  153.                               state and operation icons.  The icons
  154.                               are layered from top to bottom with the
  155.                               operation icon on top and the source
  156.                               icon on the bottom.  The hotspot is
  157.                               derived from the state icon.
  158.  
  159.                     XXXXmmmmBBBBLLLLEEEENNNNDDDD____SSSSTTTTAAAATTTTEEEE____SSSSOOOOUUUURRRRCCCCEEEE
  160.                               Blends the state and source icons only.
  161.                               The hotspot is derived from the state
  162.                               icon.
  163.  
  164.                     XXXXmmmmBBBBLLLLEEEENNNNDDDD____JJJJUUUUSSSSTTTT____SSSSOOOOUUUURRRRCCCCEEEE
  165.                               Specifies that only the source icon is
  166.                               used, which the initiator updates as
  167.                               required.
  168.  
  169.                     XXXXmmmmBBBBLLLLEEEENNNNDDDD____NNNNOOOONNNNEEEE
  170.                               Specifies that no drag-over visual is
  171.                               generated. The client tracks the drop
  172.                               site status through callback routines
  173.                               and updates the drag-over visuals as
  174.                               necessary.
  175.  
  176.           XXXXmmmmNNNNcccclllliiiieeeennnnttttDDDDaaaattttaaaa
  177.                     Specifies the client data to be passed to
  178.                     XXXXmmmmNNNNccccoooonnnnvvvveeeerrrrttttPPPPrrrrooooccccwhen it is invoked.
  179.  
  180.           XXXXmmmmNNNNccccoooonnnnvvvveeeerrrrttttPPPPrrrroooocccc
  181.                     If XXXXmmmmNNNNiiiinnnnccccrrrreeeemmmmeeeennnnttttaaaallll is True, specifies a procedure
  182.                     of type _X_t_C_o_n_v_e_r_t_S_e_l_e_c_t_i_o_n_I_n_c_r_P_r_o_c that converts
  183.                     the source data to the format(s) requested by the
  184.                     receiver client.  The _w_i_d_g_e_t argument passed to
  185.                     this procedure is the DragContext widget.  The
  186.                     selection atom passed is _MOTIF_DROP.  If
  187.                     XXXXmmmmNNNNiiiinnnnccccrrrreeeemmmmeeeennnnttttaaaallll is False, the procedure is an
  188.                     _X_t_C_o_n_v_e_r_t_S_e_l_e_c_t_i_o_n_P_r_o_c, and should ignore the
  189.                     _m_a_x__l_e_n_g_t_h, _c_l_i_e_n_t__d_a_t_a, and _r_e_q_u_e_s_t__i_d arguments
  190.                     and should handle the conversion atomically.  Data
  191.                     returned by XXXXmmmmNNNNccccoooonnnnvvvveeeerrrrttttPPPPrrrroooocccc must be allocated using
  192.  
  193.  
  194.  
  195.      Page 3                                         (printed 10/24/98)
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.      XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))
  203.  
  204.  
  205.  
  206.                     XXXXttttMMMMaaaalllllllloooocccc, and will be freed automatically by the
  207.                     toolkit after the transfer.  For additional
  208.                     information on selection conversion procedures,
  209.                     see _X _T_o_o_l_k_i_t _I_n_t_r_i_n_s_i_c_s-_C _L_a_n_g_u_a_g_e _I_n_t_e_r_f_a_c_e.
  210.  
  211.           XXXXmmmmNNNNccccuuuurrrrssssoooorrrrBBBBaaaacccckkkkggggrrrroooouuuunnnndddd
  212.                     Specifies the background pixel value of the
  213.                     cursor.
  214.  
  215.           XXXXmmmmNNNNccccuuuurrrrssssoooorrrrFFFFoooorrrreeeeggggrrrroooouuuunnnndddd
  216.                     Specifies the foreground pixel value of the cursor
  217.                     when the state icon is not blended. This resource
  218.                     defaults to the foreground color of the widget
  219.                     passed to the XXXXmmmmDDDDrrrraaaaggggSSSSttttaaaarrrrtttt function.
  220.  
  221.           XXXXmmmmNNNNddddrrrraaaaggggDDDDrrrrooooppppFFFFiiiinnnniiiisssshhhhCCCCaaaallllllllbbbbaaaacccckkkk
  222.                     Specifies the list of callbacks that are called
  223.                     when the transaction is completed. The type of the
  224.                     structure whose address is passed to this callback
  225.                     is XXXXmmmmDDDDrrrraaaaggggDDDDrrrrooooppppFFFFiiiinnnniiiisssshhhhCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt. The reason sent
  226.                     by the callback is XXXXmmmmCCCCRRRR____DDDDRRRRAAAAGGGG____DDDDRRRROOOOPPPP____FFFFIIIINNNNIIIISSSSHHHH.
  227.  
  228.           XXXXmmmmNNNNddddrrrraaaaggggMMMMoooottttiiiioooonnnnCCCCaaaallllllllbbbbaaaacccckkkk
  229.                     Specifies the list of callbacks that are invoked
  230.                     when the pointer moves.  The type of structure
  231.                     whose address is passed to this callback is
  232.                     XXXXmmmmDDDDrrrraaaaggggMMMMoooottttiiiioooonnnnCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt. The reason sent by the
  233.                     callback is XXXXmmmmCCCCRRRR____DDDDRRRRAAAAGGGG____MMMMOOOOTTTTIIIIOOOONNNN.
  234.  
  235.           XXXXmmmmNNNNddddrrrraaaaggggOOOOppppeeeerrrraaaattttiiiioooonnnnssss
  236.                     Specifies the set of valid operations associated
  237.                     with an initiator client for a drag transaction.
  238.                     This resource is a bit mask that is formed by
  239.                     combining one or more of the following values
  240.                     using a bitwise operation such as inclusive OR
  241.                     (|):  XXXXmmmmDDDDRRRROOOOPPPP____CCCCOOOOPPPPYYYY, XXXXmmmmDDDDRRRROOOOPPPP____LLLLIIIINNNNKKKK, XXXXmmmmDDDDRRRROOOOPPPP____MMMMOOOOVVVVEEEE.  The
  242.                     value XXXXmmmmDDDDRRRROOOOPPPP____NNNNOOOOOOOOPPPP for this resource indicates that
  243.                     no operations are valid.  For Text and TextField
  244.                     widgets, this resource is set to XXXXmmmmDDDDRRRROOOOPPPP____CCCCOOOOPPPPYYYY |
  245.                     XXXXmmmmDDDDRRRROOOOPPPP____MMMMOOOOVVVVEEEE; for List widgets, it is set to
  246.                     XXXXmmmmDDDDRRRROOOOPPPP____CCCCOOOOPPPPYYYY.
  247.  
  248.           XXXXmmmmNNNNddddrrrrooooppppFFFFiiiinnnniiiisssshhhhCCCCaaaallllllllbbbbaaaacccckkkk
  249.                     Specifies the list of callbacks that are invoked
  250.                     when the drop is completed. The type of the
  251.                     structure whose address is passed to this callback
  252.                     is XXXXmmmmDDDDrrrrooooppppFFFFiiiinnnniiiisssshhhhCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt. The reason sent by
  253.                     the callback is XXXXmmmmCCCCRRRR____DDDDRRRROOOOPPPP____FFFFIIIINNNNIIIISSSSHHHH.
  254.  
  255.           XXXXmmmmNNNNddddrrrrooooppppSSSSiiiitttteeeeEEEEnnnntttteeeerrrrCCCCaaaallllllllbbbbaaaacccckkkk
  256.                     Specifies the list of callbacks that are invoked
  257.                     when the pointer enters a drop site. The type of
  258.  
  259.  
  260.  
  261.      Page 4                                         (printed 10/24/98)
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.      XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))
  269.  
  270.  
  271.  
  272.                     the structure whose address is passed to this
  273.                     callback is XXXXmmmmDDDDrrrrooooppppSSSSiiiitttteeeeEEEEnnnntttteeeerrrrCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt. The
  274.                     reason sent by the callback is
  275.                     XXXXmmmmCCCCRRRR____DDDDRRRROOOOPPPP____SSSSIIIITTTTEEEE____EEEENNNNTTTTEEEERRRR.
  276.  
  277.           XXXXmmmmNNNNddddrrrrooooppppSSSSiiiitttteeeeLLLLeeeeaaaavvvveeeeCCCCaaaallllllllbbbbaaaacccckkkk
  278.                     Specifies the list of callbacks that are invoked
  279.                     when the pointer leaves a drop site. The type of
  280.                     the structure whose address is passed to this
  281.                     callback is XXXXmmmmDDDDrrrrooooppppSSSSiiiitttteeeeLLLLeeeeaaaavvvveeeeCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt. The
  282.                     reason sent by the callback is
  283.                     XXXXmmmmCCCCRRRR____DDDDRRRROOOOPPPP____SSSSIIIITTTTEEEE____LLLLEEEEAAAAVVVVEEEE.
  284.  
  285.           XXXXmmmmNNNNddddrrrrooooppppSSSSttttaaaarrrrttttCCCCaaaallllllllbbbbaaaacccckkkk
  286.                     Specifies the list of callbacks that are invoked
  287.                     when a drop is initiated. The type of the
  288.                     structure whose address is passed to this callback
  289.                     is XXXXmmmmDDDDrrrrooooppppSSSSttttaaaarrrrttttCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt. The reason sent by
  290.                     the callback is XXXXmmmmCCCCRRRR____DDDDRRRROOOOPPPP____SSSSTTTTAAAARRRRTTTT.
  291.  
  292.           XXXXmmmmNNNNeeeexxxxppppoooorrrrttttTTTTaaaarrrrggggeeeettttssss
  293.                     Specifies the list of target atoms associated with
  294.                     this source.  This resource identifies the
  295.                     selection targets this source can be converted to.
  296.  
  297.           XXXXmmmmNNNNiiiinnnnccccrrrreeeemmmmeeeennnnttttaaaallll
  298.                     Specifies a Boolean value that indicates whether
  299.                     the transfer on the initiator side uses the Xt
  300.                     incremental selection transfer mechanism described
  301.                     in _X _T_o_o_l_k_i_t _I_n_t_r_i_n_s_i_c_s-_C _L_a_n_g_u_a_g_e _I_n_t_e_r_f_a_c_e.  If
  302.                     the value is True, the initiator uses incremental
  303.                     transfer; if the value is False, the initiator
  304.                     uses atomic transfer.
  305.  
  306.           XXXXmmmmNNNNiiiinnnnvvvvaaaalllliiiiddddCCCCuuuurrrrssssoooorrrrFFFFoooorrrreeeeggggrrrroooouuuunnnndddd
  307.                     Specifies the foreground pixel value of the cursor
  308.                     when the state is invalid. This resource defaults
  309.                     to the value of the XXXXmmmmNNNNccccuuuurrrrssssoooorrrrFFFFoooorrrreeeeggggrrrroooouuuunnnndddd resource.
  310.  
  311.           XXXXmmmmNNNNnnnnoooonnnneeeeCCCCuuuurrrrssssoooorrrrFFFFoooorrrreeeeggggrrrroooouuuunnnndddd
  312.                     Specifies the foreground pixel value of the cursor
  313.                     when the state is none. This resource defaults to
  314.                     the value of the XXXXmmmmNNNNccccuuuurrrrssssoooorrrrFFFFoooorrrreeeeggggrrrroooouuuunnnndddd resource.
  315.  
  316.           XXXXmmmmNNNNnnnnuuuummmmEEEExxxxppppoooorrrrttttTTTTaaaarrrrggggeeeettttssss
  317.                     Specifies the number of entries in the list of
  318.                     export targets.
  319.  
  320.           XXXXmmmmNNNNooooppppeeeerrrraaaattttiiiioooonnnnCCCChhhhaaaannnnggggeeeeddddCCCCaaaallllllllbbbbaaaacccckkkk
  321.                     Specifies the list of callbacks that are invoked
  322.                     when the drag is started and when the user
  323.                     requests that a different operation be applied to
  324.  
  325.  
  326.  
  327.      Page 5                                         (printed 10/24/98)
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.      XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))
  335.  
  336.  
  337.  
  338.                     the drop.  The type of the structure whose address
  339.                     is passed to this callback is
  340.                     XXXXmmmmOOOOppppeeeerrrraaaattttiiiioooonnnnCCCChhhhaaaannnnggggeeeeddddCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt. The reason sent
  341.                     by the callback is XXXXmmmmCCCCRRRR____OOOOPPPPEEEERRRRAAAATTTTIIIIOOOONNNN____CCCCHHHHAAAANNNNGGGGEEEEDDDD.
  342.  
  343.           XXXXmmmmNNNNooooppppeeeerrrraaaattttiiiioooonnnnCCCCuuuurrrrssssoooorrrrIIIIccccoooonnnn
  344.                     Specifies the cursor icon used to designate the
  345.                     type of operation performed by the drag
  346.                     transaction. If NULL, XXXXmmmmSSSSccccrrrreeeeeeeennnnresources provide
  347.                     default icons for copy, link, and move operations.
  348.  
  349.           XXXXmmmmNNNNssssoooouuuurrrrcccceeeeCCCCuuuurrrrssssoooorrrrIIIIccccoooonnnn
  350.                     Specifies the cursor icon used to represent the
  351.                     source when a dynamic visual style is used. If
  352.                     NULL, the XXXXmmmmNNNNddddeeeeffffaaaauuuullllttttSSSSoooouuuurrrrcccceeeeCCCCuuuurrrrssssoooorrrrIIIIccccoooonnnn resource of
  353.                     XXXXmmmmSSSSccccrrrreeeeeeeennnn provides a default cursor icon.
  354.  
  355.           XXXXmmmmNNNNssssoooouuuurrrrcccceeeePPPPiiiixxxxmmmmaaaappppIIIIccccoooonnnn
  356.                     Specifies the pixmap icon used to represent the
  357.                     source when a preregister visual style is used.
  358.                     The icon is used in conjunction with the colormap
  359.                     of the widget passed to XXXXmmmmDDDDrrrraaaaggggSSSSttttaaaarrrrtttt.  If NULL,
  360.                     XXXXmmmmNNNNssssoooouuuurrrrcccceeeeCCCCuuuurrrrssssoooorrrrIIIIccccoooonnnn is used.
  361.  
  362.           XXXXmmmmNNNNssssttttaaaatttteeeeCCCCuuuurrrrssssoooorrrrIIIIccccoooonnnn
  363.                     Specifies the cursor icon used to designate the
  364.                     state of a drop site.  If NULL, XXXXmmmmSSSSccccrrrreeeeeeeennnn resources
  365.                     provide default icons for a valid, invalid, and no
  366.                     drop site condition.
  367.  
  368.           XXXXmmmmNNNNttttooooppppLLLLeeeevvvveeeellllEEEEnnnntttteeeerrrrCCCCaaaallllllllbbbbaaaacccckkkk
  369.                     Specifies the list of callbacks that are called
  370.                     when the pointer enters a top-level window or root
  371.                     window (due to changing screens). The type of the
  372.                     structure whose address is passed to this callback
  373.                     is XXXXmmmmTTTTooooppppLLLLeeeevvvveeeellllEEEEnnnntttteeeerrrrCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt. The reason sent
  374.                     by the callback is XXXXmmmmCCCCRRRR____TTTTOOOOPPPP____LLLLEEEEVVVVEEEELLLL____EEEENNNNTTTTEEEERRRR.
  375.  
  376.           XXXXmmmmNNNNttttooooppppLLLLeeeevvvveeeellllLLLLeeeeaaaavvvveeeeCCCCaaaallllllllbbbbaaaacccckkkk
  377.                     Specifies the list of callbacks that are called
  378.                     when the pointer leaves a top level window or the
  379.                     root window (due to changing screens). The type of
  380.                     the structure whose address is passed to this
  381.                     callback is XXXXmmmmTTTTooooppppLLLLeeeevvvveeeellllLLLLeeeeaaaavvvveeeeCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt. The
  382.                     reason sent by the callback is
  383.                     XXXXmmmmCCCCRRRR____TTTTOOOOPPPP____LLLLEEEEVVVVEEEELLLL____LLLLEEEEAAAAVVVVEEEE.
  384.  
  385.           XXXXmmmmNNNNvvvvaaaalllliiiiddddCCCCuuuurrrrssssoooorrrrFFFFoooorrrreeeeggggrrrroooouuuunnnndddd
  386.                     Specifies the foreground pixel value of the cursor
  387.                     designated as a valid cursor icon.
  388.  
  389.         IIIInnnnhhhheeeerrrriiiitttteeeedddd RRRReeeessssoooouuuurrrrcccceeeessss
  390.  
  391.  
  392.  
  393.      PPPPaaaaggggeeee 6666                                         ((((pppprrrriiiinnnntttteeeedddd 11110000////22224444////99998888))))
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.      XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))
  401.  
  402.  
  403.  
  404.           DragContext inherits behavior and resources from the
  405.           superclass described in the following table.  For a complete
  406.           description of each resource, refer to the CCCCoooorrrreeee reference
  407.           page.
  408.  
  409.                                                         CCCCoooorrrreeee RRRReeeessssoooouuuurrrrcccceeee SSSSeeeetttt
  410.           NNNNaaaammmmeeee                            CCCCllllaaaassssssss                           TTTTyyyyppppeeee             DDDDeeeeffffaaaauuuulllltttt                AAAAcccccccceeeessssssss
  411.           XmNaccelerators                 XmCAccelerators                 XtAccelerators   dynamic                CSG
  412.           XmNancestorSensitive            XmCSensitive                    Boolean          dynamic                G
  413.           XmNbackground                   XmCBackground                   Pixel            dynamic                CSG
  414.           XmNbackgroundPixmap             XmCPixmap                       Pixmap           XmUNSPECIFIED_PIXMAP   CSG
  415.           XmNborderColor                  XmCBorderColor                  Pixel            XtDefaultForeground    CSG
  416.           XmNborderPixmap                 XmCPixmap                       Pixmap           XmUNSPECIFIED_PIXMAP   CSG
  417.           XmNborderWidth                  XmCBorderWidth                  Dimension        0                      CSG
  418.           XmNcolormap                     XmCColormap                     Colormap         dynamic                CG
  419.           XmNdepth                        XmCDepth                        int              dynamic                CG
  420.           XmNdestroyCallback              XmCCallback                     XtCallbackList   NULL                   C
  421.           XmNheight                       XmCHeight                       Dimension        dynamic                CSG
  422.           XmNinitialResourcesPersistent   XmCInitialResourcesPersistent   Boolean          True                   C
  423.           XmNmappedWhenManaged            XmCMappedWhenManaged            Boolean          True                   CSG
  424.           XmNscreen                       XmCScreen                       Screen *         dynamic                CG
  425.           XmNsensitive                    XmCSensitive                    Boolean          True                   CSG
  426.           XmNtranslations                 XmCTranslations                 XtTranslations   dynamic                CSG
  427.           XmNwidth                        XmCWidth                        Dimension        dynamic                CSG
  428.           XmNx                            XmCPosition                     Position         0                      CSG
  429.           XmNy                            XmCPosition                     Position         0                      CSG
  430.  
  431.         CCCCaaaallllllllbbbbaaaacccckkkk IIIInnnnffffoooorrrrmmmmaaaattttiiiioooonnnn
  432.           Each of the DragContext callbacks has an associated callback
  433.           structure.
  434.  
  435.           A pointer to the following structure is passed to the
  436.           XXXXmmmmNNNNddddrrrraaaaggggDDDDrrrrooooppppFFFFiiiinnnniiiisssshhhhCCCCaaaallllllllbbbbaaaacccckkkk callback:
  437.  
  438.           typedef struct
  439.           {
  440.                   int _r_e_a_s_o_n;
  441.                   XEvent  *_e_v_e_n_t;
  442.                   Time _t_i_m_e_S_t_a_m_p;
  443.           }XmDragDropFinishCallbackStruct, *XmDragDropFinishCallback;
  444.  
  445.           _r_e_a_s_o_n    Indicates why the callback was invoked
  446.  
  447.           _e_v_e_n_t     Points to the _X_E_v_e_n_t that triggered the callback
  448.  
  449.           ttttiiiimmmmeeeeSSSSttttaaaammmmpppp Specifies the time at which either the drag or the
  450.                     drop was completed
  451.  
  452.           A pointer to the following structure is passed to callbacks
  453.           for XXXXmmmmNNNNddddrrrraaaaggggMMMMoooottttiiiioooonnnnCCCCaaaallllllllbbbbaaaacccckkkk:
  454.  
  455.           typedef struct
  456.  
  457.  
  458.  
  459.      Page 7                                         (printed 10/24/98)
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.      XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))
  467.  
  468.  
  469.  
  470.           {
  471.                   int _r_e_a_s_o_n;
  472.                   XEvent *_e_v_e_n_t;
  473.                   Time _t_i_m_e_S_t_a_m_p;
  474.                   unsigned char _o_p_e_r_a_t_i_o_n;
  475.                   unsigned char _o_p_e_r_a_t_i_o_n_s;
  476.                   unsigned char _d_r_o_p_S_i_t_e_S_t_a_t_u_s;
  477.                   Position _x;
  478.                   Position _y;
  479.           }XmDragMotionCallbackStruct, *XmDragMotionCallback;
  480.  
  481.           _r_e_a_s_o_n    Indicates why the callback was invoked.
  482.  
  483.           _e_v_e_n_t     Points to the _X_E_v_e_n_t that triggered the callback.
  484.  
  485.           ttttiiiimmmmeeeeSSSSttttaaaammmmpppp Specifies the timestamp of the logical event.
  486.  
  487.           _o_p_e_r_a_t_i_o_n Identifies an operation.
  488.  
  489.                     If the toolkit has just called a DropSite's
  490.                     XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc, the toolkit initializes _o_p_e_r_a_t_i_o_n to
  491.                     the value of the _o_p_e_r_a_t_i_o_nmember of the
  492.                     XXXXmmmmDDDDrrrraaaaggggPPPPrrrrooooccccCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt at the time the
  493.                     DropSite's XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc returns.
  494.  
  495.                     If the toolkit has not called an XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc and
  496.                     the pointer is within an active drop site, the
  497.                     toolkit initializes _o_p_e_r_a_t_i_o_n by selecting an
  498.                     operation from the bitwise AND of the initial
  499.                     value of the _o_p_e_r_a_t_i_o_n_s member and the value of
  500.                     the DropSite's XXXXmmmmNNNNddddrrrrooooppppSSSSiiiitttteeeeOOOOppppeeeerrrraaaattttiiiioooonnnnssss resource.
  501.                     The toolkit searches this set first for
  502.                     XXXXmmmmDDDDRRRROOOOPPPP____MMMMOOOOVVVVEEEE, then for XXXXmmmmDDDDRRRROOOOPPPP____CCCCOOOOPPPPYYYY, then for
  503.                     XXXXmmmmDDDDRRRROOOOPPPP____LLLLIIIINNNNKKKK, and initializes _o_p_e_r_a_t_i_o_n to the
  504.                     first operation it finds in the set.  If the
  505.                     toolkit finds none of these operations in the set,
  506.                     it initializes _o_p_e_r_a_t_i_o_n to XXXXmmmmDDDDRRRROOOOPPPP____NNNNOOOOOOOOPPPP.
  507.  
  508.                     If the toolkit has not called an XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc and
  509.                     the pointer is not within an active drop site, the
  510.                     toolkit initializes _o_p_e_r_a_t_i_o_nby selecting an
  511.                     operation from the initial value of the
  512.                     _o_p_e_r_a_t_i_o_n_smember.  The toolkit searches this set
  513.                     first for XXXXmmmmDDDDRRRROOOOPPPP____MMMMOOOOVVVVEEEE, then for XXXXmmmmDDDDRRRROOOOPPPP____CCCCOOOOPPPPYYYY, then
  514.                     for XXXXmmmmDDDDRRRROOOOPPPP____LLLLIIIINNNNKKKK, and initializes _o_p_e_r_a_t_i_o_n to the
  515.                     first operation it finds in the set.  If the
  516.                     toolkit finds none of these operations in the set,
  517.                     it initializes _o_p_e_r_a_t_i_o_n to XXXXmmmmDDDDRRRROOOOPPPP____NNNNOOOOOOOOPPPP.
  518.  
  519.           _o_p_e_r_a_t_i_o_n_s
  520.                     Indicates the set of operations supported for the
  521.                     source data.
  522.  
  523.  
  524.  
  525.      Page 8                                         (printed 10/24/98)
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.      XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))
  533.  
  534.  
  535.  
  536.                     If the toolkit has just called a DropSite's
  537.                     XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc, the toolkit initializes _o_p_e_r_a_t_i_o_n_s to
  538.                     the bitwise AND of the DropSite's
  539.                     _X_m_N_d_r_o_p_O_p_e_r_a_t_i_o_n_s and the value of the
  540.                     _o_p_e_r_a_t_i_o_n_smember of the XXXXmmmmDDDDrrrraaaaggggPPPPrrrrooooccccCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt
  541.                     at the time the DropSite's XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc returns.
  542.                     If the resulting set of operations is empty, the
  543.                     toolkit initializes _o_p_e_r_a_t_i_o_n_s to XXXXmmmmDDDDRRRROOOOPPPP____NNNNOOOOOOOOPPPP.
  544.  
  545.                     If the toolkit has not called an XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc and
  546.                     the user does not select an operation (by pressing
  547.                     a modifier key), the toolkit initializes
  548.                     _o_p_e_r_a_t_i_o_n_s to the value of the DragContext's
  549.                     XXXXmmmmNNNNddddrrrraaaaggggOOOOppppeeeerrrraaaattttiiiioooonnnnssss resource.
  550.  
  551.                     If the toolkit has not called an XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc and
  552.                     the user does select an operation, the toolkit
  553.                     initializes _o_p_e_r_a_t_i_o_n_s to the bitwise AND of the
  554.                     corresponding operation and the value of the
  555.                     DragContext's XXXXmmmmNNNNddddrrrraaaaggggOOOOppppeeeerrrraaaattttiiiioooonnnnssss resource.  If the
  556.                     resulting set of operations is empty, the toolkit
  557.                     initializes _o_p_e_r_a_t_i_o_n_s to XXXXmmmmDDDDRRRROOOOPPPP____NNNNOOOOOOOOPPPP.
  558.  
  559.           ddddrrrrooooppppSSSSiiiitttteeeeSSSSttttaaaattttuuuussss
  560.                     Indicates whether or not a drop site is valid.
  561.  
  562.                     If the toolkit has just called a DropSite's
  563.                     XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc, the toolkit initializes
  564.                     ddddrrrrooooppppSSSSiiiitttteeeeSSSSttttaaaattttuuuussss to the value of the ddddrrrrooooppppSSSSiiiitttteeeeSSSSttttaaaattttuuuussss
  565.                     member of the XXXXmmmmDDDDrrrraaaaggggPPPPrrrrooooccccCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt at the time
  566.                     the DropSite's XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc returns.
  567.  
  568.                     If the toolkit has not called an XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc, it
  569.                     initializes ddddrrrrooooppppSSSSiiiitttteeeeSSSSttttaaaattttuuuussss as follows:  the
  570.                     toolkit initializes ddddrrrrooooppppSSSSiiiitttteeeeSSSSttttaaaattttuuuussss to
  571.                     XXXXmmmmNNNNOOOO____DDDDRRRROOOOPPPP____SSSSIIIITTTTEEEE if the pointer is over an inactive
  572.                     drop site or is not over a drop site.  The toolkit
  573.                     initializes ddddrrrrooooppppSSSSiiiitttteeeeSSSSttttaaaattttuuuussss to XXXXmmmmDDDDRRRROOOOPPPP____SSSSIIIITTTTEEEE____VVVVAAAALLLLIIIIDDDDif
  574.                     all the following conditions are met:
  575.  
  576.                        +o  The pointer is over an active drop site.
  577.  
  578.                        +o  The DragContext's XXXXmmmmNNNNeeeexxxxppppoooorrrrttttTTTTaaaarrrrggggeeeettttssss and the
  579.                           DropSite's XXXXmmmmNNNNiiiimmmmppppoooorrrrttttTTTTaaaarrrrggggeeeettttssss are compatible.
  580.  
  581.                        +o  The initial value of the _o_p_e_r_a_t_i_o_n member is
  582.                           not XXXXmmmmDDDDRRRROOOOPPPP____NNNNOOOOOOOOPPPP.
  583.  
  584.                     Otherwise, the toolkit initializes ddddrrrrooooppppSSSSiiiitttteeeeSSSSttttaaaattttuuuussss
  585.                     to XXXXmmmmDDDDRRRROOOOPPPP____SSSSIIIITTTTEEEE____IIIINNNNVVVVAAAALLLLIIIIDDDD.
  586.  
  587.           A pointer to the following structure is passed for the
  588.  
  589.  
  590.  
  591.      Page 9                                         (printed 10/24/98)
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.      XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))
  599.  
  600.  
  601.  
  602.           XXXXmmmmNNNNddddrrrrooooppppFFFFiiiinnnniiiisssshhhhCCCCaaaallllllllbbbbaaaacccckkkk callback:
  603.  
  604.           typedef struct
  605.           {
  606.                   int _r_e_a_s_o_n;
  607.                   XEvent *_e_v_e_n_t;
  608.                   Time _t_i_m_e_S_t_a_m_p;
  609.                   unsigned char _o_p_e_r_a_t_i_o_n;
  610.                   unsigned char _o_p_e_r_a_t_i_o_n_s;
  611.                   unsigned char _d_r_o_p_S_i_t_e_S_t_a_t_u_s;
  612.                   unsigned char _d_r_o_p_A_c_t_i_o_n;
  613.                   unsigned char _c_o_m_p_l_e_t_i_o_n_S_t_a_t_u_s;
  614.           }XmDropFinishCallbackStruct, *XmDropFinishCallback;
  615.  
  616.           _r_e_a_s_o_n    Indicates why the callback was invoked.
  617.  
  618.           _e_v_e_n_t     Points to the _X_E_v_e_n_t that triggered the callback.
  619.  
  620.           ttttiiiimmmmeeeeSSSSttttaaaammmmpppp Specifies the time at which the drop was
  621.                     completed.
  622.  
  623.           _o_p_e_r_a_t_i_o_n Identifies an operation.
  624.  
  625.                     If the pointer is over an active drop site when
  626.                     the drop begins, the toolkit initializes _o_p_e_r_a_t_i_o_n
  627.                     to the value of the _o_p_e_r_a_t_i_o_nmember of the
  628.                     XXXXmmmmDDDDrrrrooooppppPPPPrrrrooooccccCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt at the time the
  629.                     DropSite's XXXXmmmmNNNNddddrrrrooooppppPPPPrrrroooocccc returns.
  630.  
  631.                     If the pointer is not over an active drop site
  632.                     when the drop begins, the toolkit initializes
  633.                     _o_p_e_r_a_t_i_o_n by selecting an operation from the
  634.                     initial value of the _o_p_e_r_a_t_i_o_n_s member.  The
  635.                     toolkit searches this set first for XXXXmmmmDDDDRRRROOOOPPPP____MMMMOOOOVVVVEEEE,
  636.                     then for XXXXmmmmDDDDRRRROOOOPPPP____CCCCOOOOPPPPYYYY, then for XXXXmmmmDDDDRRRROOOOPPPP____LLLLIIIINNNNKKKK, and
  637.                     initializes _o_p_e_r_a_t_i_o_n to the first operation it
  638.                     finds in the set.  If it finds none of these
  639.                     operations in the set, it initializes _o_p_e_r_a_t_i_o_n to
  640.                     XXXXmmmmDDDDRRRROOOOPPPP____NNNNOOOOOOOOPPPP.
  641.  
  642.           _o_p_e_r_a_t_i_o_n_s
  643.                     Indicates the set of operations supported for the
  644.                     source data.
  645.  
  646.                     If the pointer is over an active drop site when
  647.                     the drop begins, the toolkit initializes
  648.                     _o_p_e_r_a_t_i_o_n_s to the bitwise AND of the DropSite's
  649.                     _X_m_N_d_r_o_p_O_p_e_r_a_t_i_o_n_s and the value of the
  650.                     _o_p_e_r_a_t_i_o_n_smember of the XXXXmmmmDDDDrrrrooooppppPPPPrrrrooooccccCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt
  651.                     at the time the DropSite's XXXXmmmmNNNNddddrrrrooooppppPPPPrrrroooocccc returns.
  652.                     If the resulting set of operations is empty, the
  653.                     toolkit initializes _o_p_e_r_a_t_i_o_n_s to XXXXmmmmDDDDRRRROOOOPPPP____NNNNOOOOOOOOPPPP.
  654.  
  655.  
  656.  
  657.      Page 10                                        (printed 10/24/98)
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.      XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))
  665.  
  666.  
  667.  
  668.                     If the pointer is not over an active drop site
  669.                     when the drop begins and if the user does not
  670.                     select an operation (by pressing a modifier key),
  671.                     the toolkit initializes _o_p_e_r_a_t_i_o_n_s to the value of
  672.                     the DragContext's XXXXmmmmNNNNddddrrrraaaaggggOOOOppppeeeerrrraaaattttiiiioooonnnnssss resource.
  673.  
  674.                     If the pointer is not over an active drop site
  675.                     when the drop begins and if the user does select
  676.                     an operation, the toolkit initializes _o_p_e_r_a_t_i_o_n_s
  677.                     to the bitwise AND of the corresponding operation
  678.                     and the value of the DragContext's
  679.                     XXXXmmmmNNNNddddrrrraaaaggggOOOOppppeeeerrrraaaattttiiiioooonnnnssss resource.  If the resulting set
  680.                     of operations is empty, the toolkit initializes
  681.                     _o_p_e_r_a_t_i_o_n_s to XXXXmmmmDDDDRRRROOOOPPPP____NNNNOOOOOOOOPPPP.
  682.  
  683.           ddddrrrrooooppppSSSSiiiitttteeeeSSSSttttaaaattttuuuussss
  684.                     Indicates whether or not a drop site is valid.
  685.  
  686.                     If the pointer is over an active drop site when
  687.                     the drop begins, the toolkit initializes
  688.                     ddddrrrrooooppppSSSSiiiitttteeeeSSSSttttaaaattttuuuussss to the value of the ddddrrrrooooppppSSSSiiiitttteeeeSSSSttttaaaattttuuuussss
  689.                     member of the XXXXmmmmDDDDrrrrooooppppPPPPrrrrooooccccCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt at the time
  690.                     the DropSite's XXXXmmmmNNNNddddrrrrooooppppPPPPrrrroooocccc returns.
  691.  
  692.                     If the pointer is not over an active drop site
  693.                     when the drop begins, the toolkit initializes
  694.                     ddddrrrrooooppppSSSSiiiitttteeeeSSSSttttaaaattttuuuussss to XXXXmmmmNNNNOOOO____DDDDRRRROOOOPPPP____SSSSIIIITTTTEEEE.
  695.  
  696.           ddddrrrrooooppppAAAAccccttttiiiioooonnnn
  697.                     Identifies the drop action. The values are XXXXmmmmDDDDRRRROOOOPPPP,
  698.                     XXXXmmmmDDDDRRRROOOOPPPP____CCCCAAAANNNNCCCCEEEELLLL, XXXXmmmmDDDDRRRROOOOPPPP____HHHHEEEELLLLPPPP, and XXXXmmmmDDDDRRRROOOOPPPP____IIIINNNNTTTTEEEERRRRRRRRUUUUPPPPTTTT.
  699.                     The XXXXmmmmDDDDRRRROOOOPPPP____IIIINNNNTTTTEEEERRRRRRRRUUUUPPPPTTTT value is currently
  700.                     unsupported; if specified, it will be interpreted
  701.                     as an XXXXmmmmDDDDRRRROOOOPPPP____CCCCAAAANNNNCCCCEEEELLLL.
  702.  
  703.           ccccoooommmmpppplllleeeettttiiiioooonnnnSSSSttttaaaattttuuuussss
  704.                     An IN/OUT member that indicates the status of the
  705.                     drop action.  After the last callback procedure
  706.                     has returned, the final value of this member
  707.                     determines what visual transition effects will be
  708.                     applied.  There are two values:
  709.  
  710.                     XXXXmmmmDDDDRRRROOOOPPPP____SSSSUUUUCCCCCCCCEEEESSSSSSSS
  711.                               The drop was successful.
  712.  
  713.                     XXXXmmmmDDDDRRRROOOOPPPP____FFFFAAAAIIIILLLLUUUURRRREEEE
  714.                               The drop was unsuccessful.
  715.  
  716.           A pointer to the following structure is passed to callbacks
  717.           for XXXXmmmmNNNNddddrrrrooooppppSSSSiiiitttteeeeEEEEnnnntttteeeerrrrCCCCaaaallllllllbbbbaaaacccckkkk:
  718.  
  719.           typedef struct
  720.  
  721.  
  722.  
  723.      Page 11                                        (printed 10/24/98)
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.      XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))
  731.  
  732.  
  733.  
  734.           {
  735.                   int _r_e_a_s_o_n;
  736.                   XEvent *_e_v_e_n_t;
  737.                   Time _t_i_m_e_S_t_a_m_p;
  738.                   unsigned char _o_p_e_r_a_t_i_o_n;
  739.                   unsigned char _o_p_e_r_a_t_i_o_n_s;
  740.                   unsigned char _d_r_o_p_S_i_t_e_S_t_a_t_u_s;
  741.                   Position _x;
  742.                   Position _y;
  743.           }XmDropSiteEnterCallbackStruct, *XmDropSiteEnterCallback;
  744.  
  745.           _r_e_a_s_o_n    Indicates why the callback was invoked.
  746.  
  747.           _e_v_e_n_t     Points to the _X_E_v_e_n_t that triggered the callback.
  748.  
  749.           ttttiiiimmmmeeeeSSSSttttaaaammmmpppp Specifies the time the crossing event occurred.
  750.  
  751.           _o_p_e_r_a_t_i_o_n Identifies an operation.
  752.  
  753.                     If the toolkit has just called a DropSite's
  754.                     XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc, the toolkit initializes _o_p_e_r_a_t_i_o_n to
  755.                     the value of the _o_p_e_r_a_t_i_o_nmember of the
  756.                     XXXXmmmmDDDDrrrraaaaggggPPPPrrrrooooccccCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt at the time the
  757.                     DropSite's XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc returns.
  758.  
  759.                     If the toolkit has not called an XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc, it
  760.                     initializes _o_p_e_r_a_t_i_o_n by selecting an operation
  761.                     from the bitwise AND of the initial value of the
  762.                     _o_p_e_r_a_t_i_o_n_s member and the value of the DropSite's
  763.                     XXXXmmmmNNNNddddrrrrooooppppSSSSiiiitttteeeeOOOOppppeeeerrrraaaattttiiiioooonnnnssss resource.  The toolkit
  764.                     searches this set first for XXXXmmmmDDDDRRRROOOOPPPP____MMMMOOOOVVVVEEEE, then for
  765.                     XXXXmmmmDDDDRRRROOOOPPPP____CCCCOOOOPPPPYYYY, then for XXXXmmmmDDDDRRRROOOOPPPP____LLLLIIIINNNNKKKK, and initializes
  766.                     _o_p_e_r_a_t_i_o_n to the first operation it finds in the
  767.                     set.  If the toolkit finds none of these
  768.                     operations in the set, it initializes _o_p_e_r_a_t_i_o_n to
  769.                     XXXXmmmmDDDDRRRROOOOPPPP____NNNNOOOOOOOOPPPP.
  770.  
  771.           _o_p_e_r_a_t_i_o_n_s
  772.                     Indicates the set of operations supported for the
  773.                     source data.
  774.  
  775.                     If the toolkit has just called a DropSite's
  776.                     XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc, the toolkit initializes _o_p_e_r_a_t_i_o_n_s to
  777.                     the bitwise AND of the DropSite's
  778.                     _X_m_N_d_r_o_p_O_p_e_r_a_t_i_o_n_s and the value of the
  779.                     _o_p_e_r_a_t_i_o_n_smember of the XXXXmmmmDDDDrrrraaaaggggPPPPrrrrooooccccCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt
  780.                     at the time the DropSite's XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc returns.
  781.                     If the resulting set of operations is empty, the
  782.                     toolkit initializes _o_p_e_r_a_t_i_o_n_s to XXXXmmmmDDDDRRRROOOOPPPP____NNNNOOOOOOOOPPPP.
  783.  
  784.                     If the toolkit has not called an XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc and
  785.                     the user does not select an operation (by pressing
  786.  
  787.  
  788.  
  789.      Page 12                                        (printed 10/24/98)
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.      XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))
  797.  
  798.  
  799.  
  800.                     a modifier key), the toolkit initializes
  801.                     _o_p_e_r_a_t_i_o_n_s to the value of the DragContext's
  802.                     XXXXmmmmNNNNddddrrrraaaaggggOOOOppppeeeerrrraaaattttiiiioooonnnnssss resource.
  803.  
  804.                     If the toolkit has not called an XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc and
  805.                     the user does select an operation, the toolkit
  806.                     initializes _o_p_e_r_a_t_i_o_n_s to the bitwise AND of the
  807.                     corresponding operation and the value of the
  808.                     DragContext's XXXXmmmmNNNNddddrrrraaaaggggOOOOppppeeeerrrraaaattttiiiioooonnnnssss resource.  If the
  809.                     resulting set of operations is empty, the toolkit
  810.                     initializes _o_p_e_r_a_t_i_o_n_s to XXXXmmmmDDDDRRRROOOOPPPP____NNNNOOOOOOOOPPPP.
  811.  
  812.           ddddrrrrooooppppSSSSiiiitttteeeeSSSSttttaaaattttuuuussss
  813.                     Indicates whether or not a drop site is valid.
  814.  
  815.                     If the toolkit has just called a DropSite's
  816.                     XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc, the toolkit initializes
  817.                     ddddrrrrooooppppSSSSiiiitttteeeeSSSSttttaaaattttuuuussss to the value of the ddddrrrrooooppppSSSSiiiitttteeeeSSSSttttaaaattttuuuussss
  818.                     member of the XXXXmmmmDDDDrrrraaaaggggPPPPrrrrooooccccCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt at the time
  819.                     the DropSite's XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc returns.
  820.  
  821.                     If the toolkit has not called XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc, it
  822.                     initializes ddddrrrrooooppppSSSSiiiitttteeeeSSSSttttaaaattttuuuussss to XXXXmmmmDDDDRRRROOOOPPPP____SSSSIIIITTTTEEEE____VVVVAAAALLLLIIIIDDDDif
  823.                     the DragContext's XXXXmmmmNNNNeeeexxxxppppoooorrrrttttTTTTaaaarrrrggggeeeettttssss and the
  824.                     DropSite's XXXXmmmmNNNNiiiimmmmppppoooorrrrttttTTTTaaaarrrrggggeeeettttssss are compatible and if
  825.                     the initial value of the _o_p_e_r_a_t_i_o_n member is not
  826.                     XXXXmmmmDDDDRRRROOOOPPPP____NNNNOOOOOOOOPPPP.  Otherwise, the toolkit initializes
  827.                     ddddrrrrooooppppSSSSiiiitttteeeeSSSSttttaaaattttuuuussss to XXXXmmmmDDDDRRRROOOOPPPP____SSSSIIIITTTTEEEE____IIIINNNNVVVVAAAALLLLIIIIDDDD.
  828.  
  829.           _x         Indicates the x-coordinate of the pointer in root
  830.                     window coordinates.
  831.  
  832.           _y         Indicates the y-coordinate of the pointer in root
  833.                     window coordinates.
  834.  
  835.           A pointer to the following structure is passed to callbacks
  836.           for XXXXmmmmNNNNddddrrrrooooppppSSSSiiiitttteeeeLLLLeeeeaaaavvvveeeeCCCCaaaallllllllbbbbaaaacccckkkk:
  837.  
  838.           typedef struct
  839.           {
  840.                   int _r_e_a_s_o_n;
  841.                   XEvent *_e_v_e_n_t;
  842.                   Time _t_i_m_e_S_t_a_m_p;
  843.           }XmDropSiteLeaveCallbackStruct, *XmDropSiteLeaveCallback;
  844.  
  845.           _r_e_a_s_o_n    Indicates why the callback was invoked
  846.  
  847.           _e_v_e_n_t     Points to the _X_E_v_e_n_t that triggered the callback
  848.  
  849.           ttttiiiimmmmeeeeSSSSttttaaaammmmpppp Specifies the timestamp of the logical event
  850.  
  851.           A pointer to the following structure is passed for the
  852.  
  853.  
  854.  
  855.      Page 13                                        (printed 10/24/98)
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.      XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))
  863.  
  864.  
  865.  
  866.           XXXXmmmmNNNNddddrrrrooooppppSSSSttttaaaarrrrttttCCCCaaaallllllllbbbbaaaacccckkkk callback:
  867.  
  868.           typedef struct
  869.           {
  870.                   int _r_e_a_s_o_n;
  871.                   XEvent *_e_v_e_n_t;
  872.                   Time _t_i_m_e_S_t_a_m_p;
  873.                   unsigned char _o_p_e_r_a_t_i_o_n;
  874.                   unsigned char _o_p_e_r_a_t_i_o_n_s;
  875.                   unsigned char _d_r_o_p_S_i_t_e_S_t_a_t_u_s;
  876.                   unsigned char _d_r_o_p_A_c_t_i_o_n;
  877.                   Position _x;
  878.                   Position _y;
  879.           }XmDropStartCallbackStruct, *XmDropStartCallback;
  880.  
  881.           _r_e_a_s_o_n    Indicates why the callback was invoked.
  882.  
  883.           _e_v_e_n_t     Points to the _X_E_v_e_n_t that triggered the callback.
  884.  
  885.           ttttiiiimmmmeeeeSSSSttttaaaammmmpppp Specifies the time at which the drag was
  886.                     completed.
  887.  
  888.           _o_p_e_r_a_t_i_o_n Identifies an operation.
  889.  
  890.                     If the pointer is over an active drop site when
  891.                     the drop begins, the toolkit initializes _o_p_e_r_a_t_i_o_n
  892.                     to the value of the _o_p_e_r_a_t_i_o_nmember of the
  893.                     XXXXmmmmDDDDrrrrooooppppPPPPrrrrooooccccCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt at the time the
  894.                     DropSite's XXXXmmmmNNNNddddrrrrooooppppPPPPrrrroooocccc returns.
  895.  
  896.                     If the pointer is not over an active drop site
  897.                     when the drop begins, the toolkit initializes
  898.                     _o_p_e_r_a_t_i_o_n by selecting an operation from the
  899.                     initial value of the _o_p_e_r_a_t_i_o_n_s member.  The
  900.                     toolkit searches this set first for XXXXmmmmDDDDRRRROOOOPPPP____MMMMOOOOVVVVEEEE,
  901.                     then for XXXXmmmmDDDDRRRROOOOPPPP____CCCCOOOOPPPPYYYY, then for XXXXmmmmDDDDRRRROOOOPPPP____LLLLIIIINNNNKKKK, and
  902.                     initializes _o_p_e_r_a_t_i_o_n to the first operation it
  903.                     finds in the set.  If it finds none of these
  904.                     operations in the set, it initializes _o_p_e_r_a_t_i_o_n to
  905.                     XXXXmmmmDDDDRRRROOOOPPPP____NNNNOOOOOOOOPPPP.
  906.  
  907.           _o_p_e_r_a_t_i_o_n_s
  908.                     Indicates the set of operations supported for the
  909.                     source data.
  910.  
  911.                     If the pointer is over an active drop site when
  912.                     the drop begins, the toolkit initializes
  913.                     _o_p_e_r_a_t_i_o_n_s to the bitwise AND of the DropSite's
  914.                     _X_m_N_d_r_o_p_O_p_e_r_a_t_i_o_n_s and the value of the
  915.                     _o_p_e_r_a_t_i_o_n_smember of the XXXXmmmmDDDDrrrrooooppppPPPPrrrrooooccccCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt
  916.                     at the time the DropSite's XXXXmmmmNNNNddddrrrrooooppppPPPPrrrroooocccc returns.
  917.                     If the resulting set of operations is empty, the
  918.  
  919.  
  920.  
  921.      Page 14                                        (printed 10/24/98)
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.      XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))
  929.  
  930.  
  931.  
  932.                     toolkit initializes _o_p_e_r_a_t_i_o_n_s to XXXXmmmmDDDDRRRROOOOPPPP____NNNNOOOOOOOOPPPP.
  933.  
  934.                     If the pointer is not over an active drop site
  935.                     when the drop begins and if the user does not
  936.                     select an operation (by pressing a modifier key),
  937.                     the toolkit initializes _o_p_e_r_a_t_i_o_n_s to the value of
  938.                     the DragContext's XXXXmmmmNNNNddddrrrraaaaggggOOOOppppeeeerrrraaaattttiiiioooonnnnssss resource.
  939.  
  940.                     If the pointer is not over an active drop site
  941.                     when the drop begins and if the user does select
  942.                     an operation, the toolkit initializes _o_p_e_r_a_t_i_o_n_s
  943.                     to the bitwise AND of the corresponding operation
  944.                     and the value of the DragContext's
  945.                     XXXXmmmmNNNNddddrrrraaaaggggOOOOppppeeeerrrraaaattttiiiioooonnnnssss resource.  If the resulting set
  946.                     of operations is empty, the toolkit initializes
  947.                     _o_p_e_r_a_t_i_o_n_s to XXXXmmmmDDDDRRRROOOOPPPP____NNNNOOOOOOOOPPPP.
  948.  
  949.           ddddrrrrooooppppSSSSiiiitttteeeeSSSSttttaaaattttuuuussss
  950.                     Indicates whether or not a drop site is valid.
  951.  
  952.                     If the pointer is over an active drop site when
  953.                     the drop begins, the toolkit initializes
  954.                     ddddrrrrooooppppSSSSiiiitttteeeeSSSSttttaaaattttuuuussss to the value of the ddddrrrrooooppppSSSSiiiitttteeeeSSSSttttaaaattttuuuussss
  955.                     member of the XXXXmmmmDDDDrrrrooooppppPPPPrrrrooooccccCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt at the time
  956.                     the DropSite's XXXXmmmmNNNNddddrrrrooooppppPPPPrrrroooocccc returns.
  957.  
  958.                     If the pointer is not over an active drop site
  959.                     when the drop begins, the toolkit initializes
  960.                     ddddrrrrooooppppSSSSiiiitttteeeeSSSSttttaaaattttuuuussss to XXXXmmmmNNNNOOOO____DDDDRRRROOOOPPPP____SSSSIIIITTTTEEEE.
  961.  
  962.                     This field is invalid if the ddddrrrrooooppppAAAAccccttttiiiioooonnnn field is
  963.                     set to XXXXmmmmDDDDRRRROOOOPPPP____CCCCAAAANNNNCCCCEEEELLLL.
  964.  
  965.           ddddrrrrooooppppAAAAccccttttiiiioooonnnn
  966.                     An IN/OUT member that identifies the drop action.
  967.                     The values are XXXXmmmmDDDDRRRROOOOPPPP, XXXXmmmmDDDDRRRROOOOPPPP____CCCCAAAANNNNCCCCEEEELLLL, XXXXmmmmDDDDRRRROOOOPPPP____HHHHEEEELLLLPPPP,
  968.                     and XXXXmmmmDDDDRRRROOOOPPPP____IIIINNNNTTTTEEEERRRRRRRRUUUUPPPPTTTT. The value of ddddrrrrooooppppAAAAccccttttiiiioooonnnn can
  969.                     be modified to change the action actually
  970.                     initiated.  The value XXXXmmmmDDDDRRRROOOOPPPP____IIIINNNNTTTTEEEERRRRRRRRUUUUPPPPTTTT is
  971.                     currently unsupported; if specified, it will be
  972.                     interpreted as an XXXXmmmmDDDDRRRROOOOPPPP____CCCCAAAANNNNCCCCEEEELLLL.
  973.  
  974.           _x         Indicates the x-coordinate of the pointer in root
  975.                     window coordinates.
  976.  
  977.           _y         Indicates the y-coordinate of the pointer in root
  978.                     window coordinates.
  979.  
  980.           A pointer to the following structure is passed to the
  981.           XXXXmmmmNNNNooooppppeeeerrrraaaattttiiiioooonnnnCCCChhhhaaaannnnggggeeeeddddCCCCaaaallllllllbbbbaaaacccckkkk callback:
  982.  
  983.           typedef struct
  984.  
  985.  
  986.  
  987.      Page 15                                        (printed 10/24/98)
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.      XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))
  995.  
  996.  
  997.  
  998.           {
  999.                   int _r_e_a_s_o_n;
  1000.                   XEvent  *_e_v_e_n_t;
  1001.                   Time _t_i_m_e_S_t_a_m_p;
  1002.                   unsigned char _o_p_e_r_a_t_i_o_n;
  1003.                   unsigned char _o_p_e_r_a_t_i_o_n_s;
  1004.                   unsigned char _d_r_o_p_S_i_t_e_S_t_a_t_u_s;
  1005.           }XmOperationChangedCallbackStruct, *XmOperationChangedCallback;
  1006.  
  1007.           _r_e_a_s_o_n    Indicates why the callback was invoked.
  1008.  
  1009.           _e_v_e_n_t     Points to the _X_E_v_e_n_t that triggered the callback.
  1010.  
  1011.           ttttiiiimmmmeeeeSSSSttttaaaammmmpppp Specifies the time at which the crossing event
  1012.                     occurred.
  1013.  
  1014.           _o_p_e_r_a_t_i_o_n Identifies an operation.
  1015.  
  1016.                     If the toolkit has just called a DropSite's
  1017.                     XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc, the toolkit initializes _o_p_e_r_a_t_i_o_n to
  1018.                     the value of the _o_p_e_r_a_t_i_o_nmember of the
  1019.                     XXXXmmmmDDDDrrrraaaaggggPPPPrrrrooooccccCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt at the time the
  1020.                     DropSite's XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc returns.
  1021.  
  1022.                     If the toolkit has not called an XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc, and
  1023.                     the pointer is within an active drop site, the
  1024.                     toolkit initializes _o_p_e_r_a_t_i_o_n by selecting an
  1025.                     operation from the bitwise AND of the initial
  1026.                     value of the _o_p_e_r_a_t_i_o_n_s member and the value of
  1027.                     the DropSite's XXXXmmmmNNNNddddrrrrooooppppSSSSiiiitttteeeeOOOOppppeeeerrrraaaattttiiiioooonnnnssss resource.
  1028.                     The toolkit searches this set first for
  1029.                     XXXXmmmmDDDDRRRROOOOPPPP____MMMMOOOOVVVVEEEE, then for XXXXmmmmDDDDRRRROOOOPPPP____CCCCOOOOPPPPYYYY, then for
  1030.                     XXXXmmmmDDDDRRRROOOOPPPP____LLLLIIIINNNNKKKK, and initializes _o_p_e_r_a_t_i_o_n to the
  1031.                     first operation it finds in the set.  If the
  1032.                     toolkit finds none of these operations in the set,
  1033.                     it initializes _o_p_e_r_a_t_i_o_n to XXXXmmmmDDDDRRRROOOOPPPP____NNNNOOOOOOOOPPPP.
  1034.  
  1035.                     If the toolkit has not called an XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc, and
  1036.                     the pointer is not within an active drop site, the
  1037.                     toolkit initializes _o_p_e_r_a_t_i_o_nby selecting an
  1038.                     operation from the initial value of the
  1039.                     _o_p_e_r_a_t_i_o_n_smember.  The toolkit searches this set
  1040.                     first for XXXXmmmmDDDDRRRROOOOPPPP____MMMMOOOOVVVVEEEE, then for XXXXmmmmDDDDRRRROOOOPPPP____CCCCOOOOPPPPYYYY, then
  1041.                     for XXXXmmmmDDDDRRRROOOOPPPP____LLLLIIIINNNNKKKK, and initializes _o_p_e_r_a_t_i_o_n to the
  1042.                     first operation it finds in the set.  If the
  1043.                     toolkit finds none of these operations in the set,
  1044.                     it initializes _o_p_e_r_a_t_i_o_n to XXXXmmmmDDDDRRRROOOOPPPP____NNNNOOOOOOOOPPPP.
  1045.  
  1046.           _o_p_e_r_a_t_i_o_n_s
  1047.                     Indicates the set of operations supported for the
  1048.                     source data.
  1049.  
  1050.  
  1051.  
  1052.  
  1053.      Page 16                                        (printed 10/24/98)
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.      XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))
  1061.  
  1062.  
  1063.  
  1064.                     If the toolkit has just called a DropSite's
  1065.                     XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc, the toolkit initializes _o_p_e_r_a_t_i_o_n_s to
  1066.                     the bitwise AND of the DropSite's
  1067.                     _X_m_N_d_r_o_p_O_p_e_r_a_t_i_o_n_s and the value of the
  1068.                     _o_p_e_r_a_t_i_o_n_smember of the XXXXmmmmDDDDrrrraaaaggggPPPPrrrrooooccccCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt
  1069.                     at the time the DropSite's XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc returns.
  1070.                     If the resulting set of operations is empty, the
  1071.                     toolkit initializes _o_p_e_r_a_t_i_o_n_s to XXXXmmmmDDDDRRRROOOOPPPP____NNNNOOOOOOOOPPPP.
  1072.  
  1073.                     If the toolkit has not called an XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc, and
  1074.                     the user does not select an operation (by pressing
  1075.                     a modifier key), the toolkit initializes
  1076.                     _o_p_e_r_a_t_i_o_n_s to the value of the DragContext's
  1077.                     XXXXmmmmNNNNddddrrrraaaaggggOOOOppppeeeerrrraaaattttiiiioooonnnnssss resource.
  1078.  
  1079.                     If the toolkit has not called an XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc, and
  1080.                     the user does select an operation, the toolkit
  1081.                     initializes _o_p_e_r_a_t_i_o_n_s to the bitwise AND of the
  1082.                     corresponding operation and the value of the
  1083.                     DragContext's XXXXmmmmNNNNddddrrrraaaaggggOOOOppppeeeerrrraaaattttiiiioooonnnnssss resource.  If the
  1084.                     resulting set of operations is empty, the toolkit
  1085.                     initializes _o_p_e_r_a_t_i_o_n_s to XXXXmmmmDDDDRRRROOOOPPPP____NNNNOOOOOOOOPPPP.
  1086.  
  1087.           ddddrrrrooooppppSSSSiiiitttteeeeSSSSttttaaaattttuuuussss
  1088.                     Indicates whether or not a drop site is valid.
  1089.  
  1090.                     If the toolkit has just called a DropSite's
  1091.                     XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc, the toolkit initializes
  1092.                     ddddrrrrooooppppSSSSiiiitttteeeeSSSSttttaaaattttuuuussss to the value of the ddddrrrrooooppppSSSSiiiitttteeeeSSSSttttaaaattttuuuussss
  1093.                     member of the XXXXmmmmDDDDrrrraaaaggggPPPPrrrrooooccccCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt at the time
  1094.                     the DropSite's XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc returns.
  1095.  
  1096.                     If the toolkit has not called an XXXXmmmmNNNNddddrrrraaaaggggPPPPrrrroooocccc it
  1097.                     initializes ddddrrrrooooppppSSSSiiiitttteeeeSSSSttttaaaattttuuuussss to XXXXmmmmNNNNOOOO____DDDDRRRROOOOPPPP____SSSSIIIITTTTEEEE if
  1098.                     the pointer is over an inactive drop site or is
  1099.                     not over a drop site.  The toolkit initializes
  1100.                     ddddrrrrooooppppSSSSiiiitttteeeeSSSSttttaaaattttuuuussss to XXXXmmmmDDDDRRRROOOOPPPP____SSSSIIIITTTTEEEE____VVVVAAAALLLLIIIIDDDDif all the
  1101.                     following conditions are met:
  1102.  
  1103.                        +o  The pointer is over an active drop site
  1104.  
  1105.                        +o  The DragContext's XXXXmmmmNNNNeeeexxxxppppoooorrrrttttTTTTaaaarrrrggggeeeettttssss and the
  1106.                           DropSite's XXXXmmmmNNNNiiiimmmmppppoooorrrrttttTTTTaaaarrrrggggeeeettttssss are compatible
  1107.  
  1108.                        +o  The initial value of the _o_p_e_r_a_t_i_o_n member is
  1109.                           not XXXXmmmmDDDDRRRROOOOPPPP____NNNNOOOOOOOOPPPP
  1110.  
  1111.                     Otherwise, the toolkit initializes ddddrrrrooooppppSSSSiiiitttteeeeSSSSttttaaaattttuuuussss
  1112.                     to XXXXmmmmDDDDRRRROOOOPPPP____SSSSIIIITTTTEEEE____IIIINNNNVVVVAAAALLLLIIIIDDDD.
  1113.  
  1114.           A pointer to the following structure is passed to callbacks
  1115.           for XXXXmmmmNNNNttttooooppppLLLLeeeevvvveeeellllEEEEnnnntttteeeerrrrCCCCaaaallllllllbbbbaaaacccckkkk:
  1116.  
  1117.  
  1118.  
  1119.      Page 17                                        (printed 10/24/98)
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.      XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))
  1127.  
  1128.  
  1129.  
  1130.           typedef struct
  1131.           {
  1132.                   int _r_e_a_s_o_n;
  1133.                   XEvent *_e_v_e_n_t;
  1134.                   Time _t_i_m_e_S_t_a_m_p;
  1135.                   Screen _s_c_r_e_e_n;
  1136.                   Window _w_i_n_d_o_w;
  1137.                   Position _x;
  1138.                   Position _y;
  1139.                   unsigned char _d_r_a_g_P_r_o_t_o_c_o_l_S_t_y_l_e;
  1140.           }XmTopLevelEnterCallbackStruct, *XmTopLevelEnterCallback;
  1141.  
  1142.           _r_e_a_s_o_n    Indicates why the callback was invoked.
  1143.  
  1144.           _e_v_e_n_t     Points to the _X_E_v_e_n_t that triggered the callback.
  1145.  
  1146.           ttttiiiimmmmeeeeSSSSttttaaaammmmpppp Specifies the timestamp of the logical event.
  1147.  
  1148.           _s_c_r_e_e_n    Specifies the screen associated with the top-level
  1149.                     window or root window being entered.
  1150.  
  1151.           _w_i_n_d_o_w    Specifies the ID of the top-level window or root
  1152.                     window being entered.
  1153.  
  1154.           _x         Indicates the x-coordinate of the pointer in root
  1155.                     window coordinates.
  1156.  
  1157.           _y         Indicates the y-coordinate of the pointer in root
  1158.                     window coordinates.
  1159.  
  1160.           ddddrrrraaaaggggPPPPrrrroooottttooooccccoooollllSSSSttttyyyylllleeee
  1161.                     Specifies the protocol style adopted by the
  1162.                     initiator. The values are XXXXmmmmDDDDRRRRAAAAGGGG____DDDDRRRROOOOPPPP____OOOONNNNLLLLYYYY,
  1163.                     XXXXmmmmDDDDRRRRAAAAGGGG____DDDDYYYYNNNNAAAAMMMMIIIICCCC, XXXXmmmmDDDDRRRRAAAAGGGG____NNNNOOOONNNNEEEE, and
  1164.                     XXXXmmmmDDDDRRRRAAAAGGGG____PPPPRRRREEEERRRREEEEGGGGIIIISSSSTTTTEEEERRRR.
  1165.  
  1166.           A pointer to the following structure is passed to callbacks
  1167.           for XXXXmmmmNNNNttttooooppppLLLLeeeevvvveeeellllLLLLeeeeaaaavvvveeeeCCCCaaaallllllllbbbbaaaacccckkkk:
  1168.  
  1169.           typedef struct
  1170.           {
  1171.                   int _r_e_a_s_o_n;
  1172.                   XEvent  *_e_v_e_n_t;
  1173.                   Time _t_i_m_e_S_t_a_m_p;
  1174.                   Screen _s_c_r_e_e_n;
  1175.                   Window _w_i_n_d_o_w;
  1176.           }XmTopLevelLeaveCallbackStruct, *XmTopLevelLeaveCallback;
  1177.  
  1178.           _r_e_a_s_o_n    Indicates why the callback was invoked
  1179.  
  1180.           _e_v_e_n_t     Points to the _X_E_v_e_n_t that triggered the callback
  1181.  
  1182.  
  1183.  
  1184.  
  1185.      Page 18                                        (printed 10/24/98)
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.      XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))
  1193.  
  1194.  
  1195.  
  1196.           ttttiiiimmmmeeeeSSSSttttaaaammmmpppp Specifies the timestamp of the logical event
  1197.  
  1198.           _s_c_r_e_e_n    Specifies a screen associated with the top-level
  1199.                     window or root window being left
  1200.  
  1201.           _w_i_n_d_o_w    Specifies the ID of the top-level window or root
  1202.                     window being left
  1203.  
  1204.         TTTTrrrraaaannnnssssllllaaaattttiiiioooonnnnssss
  1205.           The XmDragContext translations are described in the
  1206.           following list.  The following key names are listed in the X
  1207.           standard key event translation table syntax.  This format is
  1208.           the one used by Motif to specify the widget actions
  1209.           corresponding to a given key.  A brief overview of the
  1210.           format is provided under VVVViiiirrrrttttuuuuaaaallllBBBBiiiinnnnddddiiiinnnnggggssss(3).  For a complete
  1211.           description of the format, please refer to the X Toolkit
  1212.           Instrinsics Documentation.
  1213.  
  1214.           BBBBuuuuttttttttoooonnnn1111<<<<EEEEnnnntttteeeerrrr>>>>:
  1215.                     DragMotion()
  1216.  
  1217.           BBBBuuuuttttttttoooonnnn1111<<<<LLLLeeeeaaaavvvveeee>>>>:
  1218.                     DragMotion()
  1219.  
  1220.           BBBBuuuuttttttttoooonnnn1111<<<<MMMMoooottttiiiioooonnnn>>>>:
  1221.                     DragMotion()
  1222.  
  1223.           BBBBuuuuttttttttoooonnnn2222<<<<EEEEnnnntttteeeerrrr>>>>:
  1224.                     DragMotion()
  1225.  
  1226.           BBBBuuuuttttttttoooonnnn2222<<<<LLLLeeeeaaaavvvveeee>>>>:
  1227.                     DragMotion()
  1228.  
  1229.           BBBBuuuuttttttttoooonnnn2222<<<<MMMMoooottttiiiioooonnnn>>>>:
  1230.                     DragMotion()
  1231.  
  1232.           <<<<BBBBttttnnnn2222UUUUpppp>>>>: FinishDrag()
  1233.  
  1234.           <<<<BBBBttttnnnn1111UUUUpppp>>>>: FinishDrag()
  1235.  
  1236.           <<<<KKKKeeeeyyyy>>>>RRRReeeettttuuuurrrrnnnn:
  1237.                     FinishDrag()
  1238.  
  1239.           <<<<KKKKeeeeyyyy>>>><<<<oooossssffffAAAAccccttttiiiivvvvaaaatttteeee>>>>:
  1240.                     FinishDrag()
  1241.  
  1242.           <<<<BBBBttttnnnnDDDDoooowwwwnnnn>>>>:
  1243.                     IgnoreButtons()
  1244.  
  1245.           <<<<BBBBttttnnnnUUUUpppp>>>>:  IgnoreButtons()
  1246.  
  1247.           ::::<<<<KKKKeeeeyyyy>>>><<<<oooossssffffCCCCaaaannnncccceeeellll>>>>:
  1248.  
  1249.  
  1250.  
  1251.      Page 19                                        (printed 10/24/98)
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.      XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))
  1259.  
  1260.  
  1261.  
  1262.                     CancelDrag()
  1263.  
  1264.           ::::<<<<KKKKeeeeyyyy>>>><<<<oooossssffffHHHHeeeellllpppp>>>>:
  1265.                     HelpDrag()
  1266.  
  1267.           ::::<<<<KKKKeeeeyyyy>>>><<<<oooossssffffUUUUpppp>>>>:
  1268.                     DragKey(_U_p)
  1269.  
  1270.           ::::<<<<KKKKeeeeyyyy>>>><<<<oooossssffffDDDDoooowwwwnnnn>>>>:
  1271.                     DragKey(_D_o_w_n)
  1272.  
  1273.           ::::<<<<KKKKeeeeyyyy>>>><<<<oooossssffffLLLLeeeefffftttt>>>>:
  1274.                     DragKey(_L_e_f_t)
  1275.  
  1276.           ::::<<<<KKKKeeeeyyyy>>>><<<<oooossssffffRRRRiiiigggghhhhtttt>>>>:
  1277.                     DragKey(_R_i_g_h_t)
  1278.  
  1279.           ::::<<<<KKKKeeeeyyyyUUUUpppp>>>>: DragKey(_U_p_d_a_t_e)
  1280.  
  1281.           ::::<<<<KKKKeeeeyyyyDDDDoooowwwwnnnn>>>>:
  1282.                     DragKey(_U_p_d_a_t_e)
  1283.  
  1284.         AAAAccccttttiiiioooonnnn RRRRoooouuuuttttiiiinnnneeeessss
  1285.           The XmDragContext action routines are
  1286.  
  1287.           CancelDrag():
  1288.                     Cancels the drag operation and frees the
  1289.                     associated DragContext.
  1290.  
  1291.           DragKey(SSSSttttrrrriiiinnnngggg))))
  1292.                     If the value of SSSSttttrrrriiiinnnngggg is LLLLeeeefffftttt, RRRRiiiigggghhhhtttt, UUUUpppp, or
  1293.                     DDDDoooowwwwnnnn, this action moves the dragged object in the
  1294.                     corresponding location. Any other values of SSSSttttrrrriiiinnnngggg
  1295.                     are ignored.
  1296.  
  1297.           DragMotion():
  1298.                     Drags the selected data as the pointer is moved.
  1299.  
  1300.           FinishDrag():
  1301.                     Finishes the drag operation and starts the drop
  1302.                     operation.
  1303.  
  1304.           HelpDrag():
  1305.                     Initiates a conditional drop that enables the
  1306.                     receiver to provide help information to the user.
  1307.                     The user can cancel or continue the drop operation
  1308.                     in response to this information.
  1309.  
  1310.         VVVViiiirrrrttttuuuuaaaallll BBBBiiiinnnnddddiiiinnnnggggssss
  1311.           The bindings for virtual keys are vendor specific.  For
  1312.           information about bindings for virtual buttons and keys, see
  1313.           VVVViiiirrrrttttuuuuaaaallllBBBBiiiinnnnddddiiiinnnnggggssss(3).
  1314.  
  1315.  
  1316.  
  1317.      Page 20                                        (printed 10/24/98)
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.      XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmDDDDrrrraaaaggggCCCCoooonnnntttteeeexxxxtttt((((3333XXXX))))
  1325.  
  1326.  
  1327.  
  1328.      RRRREEEELLLLAAAATTTTEEEEDDDD IIIINNNNFFFFOOOORRRRMMMMAAAATTTTIIIIOOOONNNN
  1329.           CCCCoooorrrreeee(3), XXXXmmmmDDDDiiiissssppppllllaaaayyyy(3), XXXXmmmmDDDDrrrraaaaggggCCCCaaaannnncccceeeellll(3), XXXXmmmmDDDDrrrraaaaggggIIIIccccoooonnnn(3),
  1330.           XXXXmmmmDDDDrrrraaaaggggSSSSttttaaaarrrrtttt(3), XXXXmmmmDDDDrrrrooooppppSSSSiiiitttteeee(3), XXXXmmmmDDDDrrrrooooppppTTTTrrrraaaannnnssssffffeeeerrrr(3), and
  1331.           XXXXmmmmSSSSccccrrrreeeeeeeennnn(3).
  1332.  
  1333.  
  1334.  
  1335.  
  1336.  
  1337.  
  1338.  
  1339.  
  1340.  
  1341.  
  1342.  
  1343.  
  1344.  
  1345.  
  1346.  
  1347.  
  1348.  
  1349.  
  1350.  
  1351.  
  1352.  
  1353.  
  1354.  
  1355.  
  1356.  
  1357.  
  1358.  
  1359.  
  1360.  
  1361.  
  1362.  
  1363.  
  1364.  
  1365.  
  1366.  
  1367.  
  1368.  
  1369.  
  1370.  
  1371.  
  1372.  
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.      Page 21                                        (printed 10/24/98)
  1384.  
  1385.  
  1386.  
  1387.